import request from "@/utils/request";

const SPOTTICKET_BASE_URL = "/api/v1/spotTickets/audit";

const SpotTicketAuditAPI = {
  /** 获取预售票数据分页数据 */
  getPage(queryParams?: SpotTicketPageQuery) {
    return request<any, PageResult<SpotTicketPageVO[]>>({
      url: `${SPOTTICKET_BASE_URL}/page`,
      method: "get",
      params: queryParams,
    });
  },
  /**
   * 获取预售票数据表单数据
   *
   * @param id 预售票数据ID
   * @returns 预售票数据表单数据
   */
  getFormData(id: number) {
    return request<any, SpotTicketForm>({
      url: `${SPOTTICKET_BASE_URL}/${id}/form`,
      method: "get",
    });
  },

  /** 添加预售票数据*/
  add(data: SpotTicketForm) {
    return request({
      url: `${SPOTTICKET_BASE_URL}`,
      method: "post",
      data: data,
    });
  },

  /**
   * 更新预售票数据
   *
   * @param id 预售票数据ID
   * @param data 预售票数据表单数据
   */
  update(id: number, data: SpotTicketForm) {
    return request({
      url: `${SPOTTICKET_BASE_URL}/${id}`,
      method: "put",
      data: data,
    });
  },

  /**
   * 批量审核
   * @param ids
   */
  auditByIds(ids: string) {
    return request({
      url: `${SPOTTICKET_BASE_URL}/audit/${ids}`,
      method: "post",
    });
  },
  /**
   * 批量退回
   * @param ids
   */
  refundByIds(ids: string) {
    return request({
      url: `${SPOTTICKET_BASE_URL}/refund/${ids}`,
      method: "post",
    });
  },
};

export default SpotTicketAuditAPI;

/** 预售票数据分页查询参数 */
export interface SpotTicketPageQuery extends PageQuery {

  auditTime?: [string, string];
  /** 旅行社名称 */
  deptName?: string;
  deptId?: number;
  /** 分类名称 */
  categoryName?: string;
  categoryId?: number;
  /** 录入人 */
  recordUserName?: string;
  /** 审核人 */
  auditUserName?: string;
  /** 审核结果0未审核1审核中2审核通过3审核拒绝 */
  auditResult?: number;
}

/** 预售票数据表单对象 */
export interface SpotTicketForm {
  id?: number;
  /** 旅行社Id */
  deptId?: number;
  /** 旅行社名称 */
  deptName?: string;
  /** 分类Id */
  categoryId?: number;
  /** 分类名称 */
  categoryName?: string;
  /** 预售数量 */
  num?: number;
  /** 录入人Id */
  recordBy?: number;
  /** 录入人 */
  recordUserName?: string;
  /** 录入时间 */
  recordTime?: Date;
  /** 审核人Id */
  auditBy?: number;
  /** 审核人 */
  auditUserName?: string;
  /** 审核时间 */
  auditTime?: Date;
  /** 审核结果0未审核1审核中2审核通过3审核拒绝 */
  auditResult?: number;
  /** 审核意见 */
  remark?: string;
}

/** 预售票数据分页对象 */
export interface SpotTicketPageVO {
  id?: number;
  /** 旅行社Id */
  deptId?: number;
  /** 旅行社名称 */
  deptName?: string;
  /** 分类Id */
  categoryId?: number;
  /** 分类名称 */
  categoryName?: string;
  /** 预售数量 */
  num?: number;
  /** 录入人Id */
  recordBy?: number;
  /** 录入人 */
  recordUserName?: string;
  /** 录入时间 */
  recordTime?: Date;
  /** 审核人Id */
  auditBy?: number;
  /** 审核人 */
  auditUserName?: string;
  /** 审核时间 */
  auditTime?: Date;
  /** 审核结果0未审核1审核中2审核通过3审核拒绝 */
  auditResult?: number;
  /** 审核意见 */
  remark?: string;
}
